Skip to content

Web: cut over app-web to Adwaita SPA, drop Jekyll - #167

Merged
JumpLink merged 1 commit into
mainfrom
web/jekyll-cutover
Jul 4, 2026
Merged

Web: cut over app-web to Adwaita SPA, drop Jekyll#167
JumpLink merged 1 commit into
mainfrom
web/jekyll-cutover

Conversation

@JumpLink

@JumpLink JumpLink commented Jul 4, 2026

Copy link
Copy Markdown
Owner

Phase 6 (final) of the app-web rewrite — remove the classic skilldrick Jekyll tutorial + its pre-rewrite web app, and deploy the new Adwaita SPA to GitHub Pages via GitHub Actions instead of the legacy Jekyll build.

Removed (the entire classic layer — the new SPA imports none of it, verified)

  • Jekyll site: _config.yml, Gemfile(+lock), _includes/, _layouts/, index.markdown, simulator.markdown, snake.markdown, params.json
  • Classic web app: src/{main,game-console,display,debugger,message-console,ui-state}.ts, src/main.css, src/style/, src/types/state.ts
  • Classic build: vite.config.js + its build:vite/build/setup/start scripts (and dead start:app/debug:app)

−3200 lines. The tutorial prose is not lost — canonical in packages/learn/tutorial.mdx, already rendered by the SPA's Learn view.

New deploy — .github/workflows/deploy-pages.yml

Mirrors the CI type-check environment (Fedora 43 + gjs + Node 24 + gjsify install --immutable): builds coreexampleslearn, then gjsify build --app browser, and publishes packages/app-web/dist-app via actions/deploy-pages. The built index.html references ./app.js relatively → serves correctly under the /Learn6502/ project subpath.

Verified

  • gjsify tsc --noEmit clean; build:app produces dist-app/{index.html,app.js} (765 KB).
  • Headless smoke test: all four views render (window, Learn, Editor, GameConsole, Debugger), no runtime errors.

⚠️ Does not flip the live site yet

The site at https://jumplink.eu/Learn6502/ currently serves the classic tutorial via the legacy gh-pages branch. To go live with the SPA, Settings → Pages → Source must change from the gh-pages branch to "GitHub Actions" — done deliberately after this workflow proves green (so the switch is the go-live moment; it's reversible by pointing back at the branch). The gh-pages branch is kept as the historical record of the classic site.

Phase 6 (final) of the app-web rewrite: remove the classic skilldrick Jekyll
tutorial and its pre-rewrite web app, and deploy the new Adwaita SPA to GitHub
Pages via GitHub Actions instead of the legacy Jekyll build.

Removed the entire classic layer (the new SPA imports none of it, verified):
- Jekyll site: `_config.yml`, `Gemfile`(+lock), `_includes/`, `_layouts/`,
  `index.markdown`, `simulator.markdown`, `snake.markdown`, `params.json`.
- Classic web app: `src/{main,game-console,display,debugger,message-console,
  ui-state}.ts`, `src/main.css`, `src/style/`, `src/types/state.ts`.
- Classic build: `vite.config.js` (its `build:vite`/`build`/`setup`/`start`
  scripts, plus dead `start:app`/`debug:app`).

The tutorial prose is NOT lost — it is canonical in `packages/learn/tutorial.mdx`
and already rendered by the SPA's Learn view.

New GitHub Pages deploy (`.github/workflows/deploy-pages.yml`): mirrors the CI
type-check environment (Fedora 43 + gjs + Node 24 + `gjsify install --immutable`),
builds `core`/`examples`/`learn` then `gjsify build --app browser`, and publishes
`packages/app-web/dist-app` via `actions/deploy-pages`. The built `index.html`
references `./app.js` relatively, so it serves correctly under the `/Learn6502/`
project subpath.

`build` now runs `build:app`; `clear` only removes `dist-app`; tsconfig drops the
deleted classic entry; README + AGENTS.md updated to the SPA.

NOTE: this does not flip the live site yet — Settings → Pages → Source must be
changed from the legacy `gh-pages` branch to "GitHub Actions" to serve the SPA
(done deliberately after this workflow proves green). The `gh-pages` branch is
kept as the historical record of the classic site.
@JumpLink
JumpLink merged commit abb8f9e into main Jul 4, 2026
3 checks passed
@JumpLink
JumpLink deleted the web/jekyll-cutover branch July 4, 2026 10:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant